Traditionally, cyclic redundancy check (CRC) or checksum functions are implemented in hardware and used to detect corruption of data during wireless transmissions, which is often caused by noise in transmission channels. A receiver receives a transmission block having a header and a payload. Incoming data from the payload is fully stored in a memory, and the header is processed by a software module to obtain the length of the payload (e.g., in bits or bytes). The mathematical function of either CRC or checksum (whichever is specified according to the transmission scheme) is performed using the data stored in the memory to produce a calculated CRC or checksum value. This calculated value should result in a known, fixed reference value, provided that the data is correct. Alternatively, the reference value is given somewhere in the payload data. If the calculated value matches the expected result, it can be assumed the block is correct. Otherwise, the result is a conclusion of block error and the receiver can request re-transmission of the block, discard the block, or try to repair the block.
Because the traditional CRC or checksum verification can not performed until the block's data is completely stored in a memory and the length of the payload is determined, there is a certain amount of latency inherent in this process. In WiMAX systems (compliant with IEEE Standard 802.16e), this length uncertainty is exacerbated by the fact that there can be up to 29 padding bytes in the payload. Thus, (partial) parsing of the payload data to retrieve the length is needed before the traditional CRC or checksum verification can be performed by hardware. Thus, there is an opportunity to reduce this CRC or checksum verification latency. The various aspects, features and advantages of the disclosure will become more fully apparent to those having ordinary skill in the art upon careful consideration of the following Drawings and accompanying Detailed Description.